home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 6 / CU Amiga Magazine's Super CD-ROM 06 (1996)(EMAP Images)(GB)(Track 1 of 4)[!][issue 1997-01].iso / cucd / prog / gnu-c / mc68020-cbm-amigados / include / assert.h
C/C++ Source or Header  |  1995-08-16  |  1KB  |  53 lines

  1. /* Allow this file to be included multiple times
  2.    with different settings of NDEBUG.  */
  3. #undef assert
  4. #undef __assert
  5.  
  6. #ifdef NDEBUG
  7. #define assert(ignore) ((void) 0)
  8. #else
  9.  
  10. #ifndef __GNUC__
  11.  
  12. #define assert(expression)  \
  13.   ((void) ((expression) ? 0 : __assert (expression, __FILE__, __LINE__)))
  14.  
  15. #define __assert(expression, file, lineno)  \
  16.   (printf ("%s:%u: failed assertion\n", file, lineno),    \
  17.    abort (), 0)
  18.  
  19. #else
  20.  
  21. #if defined(__STDC__) || defined (__cplusplus)
  22.  
  23. /* Defined in libgcc.a */
  24. #ifdef __cplusplus
  25. extern "C" {
  26. extern void __eprintf (const char *, const char *, unsigned, const char *);
  27. }
  28. #else
  29. extern void __eprintf (const char *, const char *, unsigned, const char *);
  30. #endif
  31.  
  32. #define assert(expression)  \
  33.   ((void) ((expression) ? 0 : __assert (#expression, __FILE__, __LINE__)))
  34.  
  35. #define __assert(expression, file, line)  \
  36.   (__eprintf ("%s:%u: failed assertion `%s'\n",        \
  37.           file, line, expression), 0)
  38.  
  39. #else /* no __STDC__ and not C++; i.e. -traditional.  */
  40.  
  41. extern void __eprintf (); /* Defined in libgcc.a */
  42.  
  43. #define assert(expression)  \
  44.   ((void) ((expression) ? 0 : __assert (expression, __FILE__, __LINE__)))
  45.  
  46. #define __assert(expression, file, lineno)  \
  47.   (__eprintf ("%s:%u: failed assertion `%s'\n",        \
  48.           file, lineno, "expression"), 0)
  49.  
  50. #endif /* no __STDC__ and not C++; i.e. -traditional.  */
  51. #endif /* no __GNU__; i.e., /bin/cc.  */
  52. #endif
  53.